如何在Linux环境下建立Git Server并设置用户
版本控制相信大家都听说过。今天我们要来讲解一下如何在Linux环境下建立起Git Server并且设立多个用户可以远端进行push及pull等操作。
我的演示环境是一个Amazon EC2的instance,安装好了Ubuntu 16.04,并且已经安装有git。
我们想达到的目的是这样的:
建立一个名为/srv/git的文件夹,对于我们当前项目,会有一个相应的my_project.git文件夹,我们可以在本地使用git push origin master或者git pull origin master命令来推送或者取回相应的文件。
首先git是存在多种protocol的,我们使用的是ssh。所以在建立用户的时候,我们需要建立相应的public key及private key,并且将public key添加到服务器端.ssh/authorized_keys文件中(稍后会介绍如何操作)。
首先我们需要建立一个用户git,专门用来远端连接,这样可以限制能够接触到文件的用户:
$ sudo su
$ adduser git
接下来,我们需要建立起.ssh文件夹及相应的authorized_keys文件,用来添加授权用户的public key:
$ su git
git@amazon-server-ip:/home/ubuntu$ cd
git@amazon-server-ip:~$ mkdir .ssh && chmod 700 .ssh
git@amazon-server-ip:~$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
建立文件并且添加了相应的文件权限后,我们需要添加开发者的public key。假设我们需要本地连接git服务器,那么我们需要创建一对public key和private key:
$ cd ~/.ssh
$ ssh-keygen -t RSA -b 2048 -C "Local Developer"
根据提示输入相应的密钥文件名及是否设置密码。
(或者我们可以直接使用Amazon后台建立一对新的密钥。)
然后我们可以看到.ssh文件夹中多出了两个文件,一个无后缀名的文件为私钥,另一个.pub后缀的为公钥。假设我们创建的公钥名称为aws.git.pub,我们需要把公钥中的内容添加到服务器的.ssh/authorized_keys中:
//将aws.git.pub上传到服务器根目录
$ scp -i mykey.pem aws.git.pub ubuntu@amazon-server-ip:~/
//将aws.git.pub中的内容添加到authorized_keys中
ubuntu@amazon-server-ip:~$ sudo cat aws.git.pub >> /home/git/.ssh/authorized_keys
现在我们尝试使用ssh登陆到git@amazon-server-ip:
$ ssh -i ~/.ssh/aws.git git@amazon-server-ip
若显示连接成功,那么我们就可以进行下一步了!
现在我们要建立/srv/git/my_project.git文件夹:
ubuntu@amazon-server-ip:~$ sudo su
root@amazon-server-ip:~$ mkdir -p /srv/git/my_project.git
root@amazon-server-ip:~$ cd /srv/git/my_project.git
root@amazon-server-ip:/srv/git/my_project.git$ git init --bare
Initialized empty Git repository in /srv/git/project.git/
接下来我们需要更改一下文件所属用户:
root@amazon-server-ip:~$ chown -R git: /srv
现在我们就可以在本地使用push将我们的project推送到服务器了:
$ cd my-project
$ git init
$ git add .
$ git commit -m "initial commit"
$ git remote add origin git@amazon-server-ip:/srv/git/my-project.git
$ git push origin master
如果我们需要新增用户,只需要将新用户的public key添加到服务器的/home/git/.ssh/authorized_keys文件中就可以了。
相关热词: Linux
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/server/fwq/8899.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
使用Cockpit方便地管理容器
时间:2020-12-29
-
linux系统上如何快速安装
时间:2020-12-29
-
如何在Linux VPS上定制自己
时间:2020-12-29
-
开启nginx和php-fpm的status状
时间:2020-12-29
-
采用DNSPOD解析API快速验证
时间:2020-12-29
-
如何在CentOS 7上安装Elast
时间:2020-12-29
-
.Net Core在Linux服务器上部署
时间:2020-12-29
-
如何用树莓派控制GOIO引脚
时间:2020-12-25
热门文章
-
利用可道云KodExplorer软件部署私有云盘和
时间:2020-12-22
-
Linux VPS/服务器一键检测硬件配置、节点下
时间:2020-12-22
-
采用DNSPOD解析API快速验证域名快速安装免
时间:2020-12-29
-
Linux系统下用iperf诊断网络端口是否有被过
时间:2020-12-22
-
在CentOS系统上安装GitLab并自定义域名访问
时间:2020-12-23
-
web3通过testrpc访问以太坊数据入门
时间:2020-12-24
-
容器环境中的代理模型
时间:2020-12-22
-
在linux下启动tomcat,并实时查看tomcat的控
时间:2020-12-23
-
使用Linux定时脚本更新服务器的git代码
时间:2020-12-24
-
.Net Core在Linux服务器上部署.NET框架教程
时间:2020-12-29
